package cn.iocoder.yudao.module.shop.controller.admin.dayuser.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;

/**
 * 艾灸师每日统计 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class ShopDayUserBaseVO {

    @Schema(description = "日期id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19089")
    @NotNull(message = "日期id不能为空")
    private String dateId;

    @Schema(description = "艾灸师id", requiredMode = Schema.RequiredMode.REQUIRED, example = "25626")
    @NotNull(message = "艾灸师id不能为空")
    private Long userId;

    @Schema(description = "支数", requiredMode = Schema.RequiredMode.REQUIRED, example = "15514")
    @NotNull(message = "支数不能为空")
    private Integer count;

    @Schema(description = "手工费", requiredMode = Schema.RequiredMode.REQUIRED, example = "13390")
    @NotNull(message = "手工费不能为空")
    private Integer handlePrice;

    @Schema(description = "额外手工费", requiredMode = Schema.RequiredMode.REQUIRED, example = "13390")
    @NotNull(message = "额外手工费不能为空")
    private Integer extHandlePrice;

    @Schema(description = "总人次", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "总人次不能为空")
    private Integer totalMemberTimes;

    @Schema(description = "会员人次", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "会员人次不能为空")
    private Integer vipTimes;

    @Schema(description = "非会员人次", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "非会员人次不能为空")
    private Integer novipTimes;

    @Schema(description = "新客进店数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "3203")
    @NotNull(message = "新客进店数量不能为空")
    private Integer newMemberCount;

    @Schema(description = "充值总人数", requiredMode = Schema.RequiredMode.REQUIRED, example = "20929")
    @NotNull(message = "充值总人数不能为空")
    private Integer chargeTotalCount;

    @Schema(description = "充值总金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "30460")
    @NotNull(message = "充值总金额不能为空")
    private Integer chargeTotalPrice;

    @Schema(description = "续充个数", requiredMode = Schema.RequiredMode.REQUIRED, example = "15031")
    @NotNull(message = "续充个数不能为空")
    private Integer chargeContinueCount;

    @Schema(description = "首充个数", requiredMode = Schema.RequiredMode.REQUIRED, example = "22418")
    @NotNull(message = "首充个数不能为空")
    private Integer chargeFirstCount;

    @Schema(description = "未续充个数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1790")
    @NotNull(message = "未续充个数不能为空")
    private Integer chargeNoContinueCount;

    @Schema(description = "现金用户，大于1次之后充值", requiredMode = Schema.RequiredMode.REQUIRED, example = "22814")
    @NotNull(message = "现金用户，大于1次之后充值不能为空")
    private Integer chargeAfterTimesCount;

    @Schema(description = "首充奖励", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "首充奖励不能为空")
    private Integer firstChargeBonus;

    @Schema(description = "是否请假", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否请假不能为空")
    private Boolean isHoliday;

    @Schema(description = "是否确认", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否确认不能为空")
    private Boolean confirmed;

}
